package com.chixing.day02;

import java.util.Arrays;

public class MyContainer {

    //容器的初始容量为10
    public int[] defaultArray =new int[10];
    //容器已有元素的个数
    int size=0;



    /*
    * 容器中添加新元素
    * @param ele 新元素
    * */

    public void add(int ele){

        if(size < defaultArray.length){   //如果元素没有满的时候
            defaultArray[size++] =ele; //  直接添加在尾部
       }else{              //扩容
            int[] newArr =new int[defaultArray.length*2 +1];  //创建新数组
 //                      等同于
//           Arrays.copyOf(defaultArray,defaultArray.length*2 +1);
            for(int i=0;i<defaultArray.length;i++){   //遍历
                newArr[i]=defaultArray[i];      //原来数组的元素 赋值 给新数组的

           }
            newArr[size]=ele;           //
            size++;                     //继续添加新元素
           defaultArray=newArr;    //执行以上代码以后  新数组等同于旧数组

        }

//        代码优化
//        if(size >= defaultArray.length)
//            Arrays.copyOf(defaultArray,defaultArray.length*2 +1);
////    等同于
////    Arrays.copyOf(defaultArray,(defaultArray.length<<1+1)); //二进制数  小数点右移1位
//
//        defaultArray[size]=ele;

    }

    //遍历容器中的元素for
    public void  show(){
        for(int i=0;i<size;i++){
            System.out.println(defaultArray[i] + " , ");

        }
  }
}
